#include <stdio.h>
#include <string.h>

// 结构变量的成员在内存中占用连续的存储区域，所占内存大小为结构中每个成员的长度之和。

// 不使用typedef
// 1、定义了一个名字为student的结构体类型。结构体的标签被命名为SIMPLE,没有声明变量。
struct student {
    char name[10];
    int number;
};

// 用student标签的结构体，另外声明了变量t1、t2、t3
struct student t1, t2[20], *t3;

// 2、结构体数组
struct teacher {
    char name[10];
    int number;
} teacher_s[2] = {
    {"zhangsan",20},
    {"lisi",18}
}; 

//3、声明了结构体变量s1，这个结构体并没有标明其标签。
struct {
    int a;
} s1;

// 使用typedef
// 4、
typedef struct {
    char name[10];
    int  number;
} student_s;

//现在可以用Simple2作为类型声明新的结构体变量
student_s u1, u2[20], *u3;

// 5、
typedef struct teacher {
    char name[10];
    int number;
} teacher_s;

int main()
{   
    // 1、
    // struct 结构类型名称 结构变量名;
    struct student std = {"张三",20};
    printf("书名：%s \n",std.name);
    printf("价格：%d \n",std.number);

    // 2、
    printf("老师的名字：%s \n",teacher_s->name);
    printf("数字：%d \n",teacher_s->number);
    return 0;
}

/*

// 2、
struct table {
    char name[10];
    int number;
} table_s;



*/